package api


const (

	LUA_TNONE = iota - 1 // -1 //Lua栈可以按索引存取值，如果我们提供给Lua API一个无效索引，那么这个索引对应的值的类型就是TNONE

	LUA_TNIL	// 空

	LUA_TBOOLEAN	// 布尔

	LUA_TLIGHTUSERDATA	// 轻量级用户数据

	LUA_TNUMBER		// 数字

	LUA_TSTRING		// 字符串

	LUA_TTABLE		// 表

	LUA_TFUNCTION	// 函数

	LUA_TUSERDATA 	// 用户数据

	LUA_TTHREAD		// 线程

)


const (

	LUA_OPADD = iota	// +

	LUA_OPSUB			// -

	LUA_OPMUL			// *

	LUA_OPMOD			// %

	LUA_OPPOW			// ^

	LUA_OPDIV			// /

	LUA_OPIDIV			// // 整除(向负无穷大取整)

	LUA_OPBAND			// &

	LUA_OPBOR			// |

	LUA_OPBXOR			// ~

	LUA_OPSHL			// <<

	LUA_OPSHR			// >>

	LUA_OPUNM			// - (unary minus)

	LUA_OPBNOT			// ~

)


const (

	LUA_OPEQ = iota			// ==

	LUA_OPLT				// <

	LUA_OPLE				// <=

)


// 函数加载或者执行的状态
// thread status
const (

	LUA_OK = iota

	LUA_YIELD

	LUA_ERRRUN

	LUA_ERRSYNTAX

	LUA_ERRMEM

	LUA_ERRGCMM

	LUA_ERRERR

	LUA_ERRFILE

)


const LUA_MINSTACK = 20		// 栈的最小尺寸

const LUAI_MAXSTACK = 1000000		// Lua栈的最大索引

const LUA_REGISTRYINDEX = -LUAI_MAXSTACK - 1000		//注册表的伪索引 

const LUA_RIDX_GLOBALS int64 = 2		// 定义全局环境在注册表里的索引

const LUA_MULTRET = -1

const LUA_RIDX_MAINTHREAD int64 = 1		// 定义主线程在注册表里的索引


const (
	LUA_MAXINTEGER = 1<<63 - 1
	LUA_MININTEGER = -1 << 63  // 0xA0 00 00 00 -> 最小的负数
)